<?php


namespace App\Http\Controllers\Admin\RankingList;


use App\Response\Response;
use Illuminate\Http\Request;
use App\Exceptions\BasicException;
use App\Http\Controllers\BaseController;

class RankingController extends BaseController
{
    /**
     * @api {post} /ranking-list/rich-charm 财富或魅力榜
     * @apiVersion 3.0.1
     * @apiName 财富或魅力榜
     * @apiGroup  榜单管理
     * @apiParam {number} page     页数(不传默认第一页)，非必传
     * @apiParam {number} page_size     每页数量，非必传
     * @apiParam {int} rank_type     榜单类型：1（默认）：财富榜，2：魅力榜
     * @apiParam {string} date_tag     日期类型：1（默认）：今日，2：本周，3：本月，1_1：昨日，2_1：上周，3_1：上月
     * @apiParam {string} nickname     用户昵称
     * @apiParam {int} user_code     用户ID
     * @apiSuccessExample 成功响应
     * {
    "code": 200,
    "data": {
    "data": [
    {
    "value": "16111347784", 财富值或魅力值
    "user_code": 597564, 用户ID
    "nickname": ".唉", 用户昵称
    "society_no": "", 所属公会ID
    "rank": 1 排名
    }
    ],
    "total": 73, 总记录数
    "page": "1", 第几页
    "page_size": "1" 每页显示条数
    },
    "message": ""
    }
     */
    public function richAndCharmList(Request $request)
    {
        $params = $request->only('rank_type', 'date_tag', 'nickname', 'user_code', 'page', 'page_size');

        $v = app('validator')->make($params, [
            'rank_type' => 'integer|in:1,2',
            'date_tag' => 'string|in:1,2,3,1_1,2_1,3_1',
            'nickname' => 'string',
            'user_code' => 'integer',
            'page' => 'integer|min:1',
            'page_size' => 'integer|min:1|max:100',
        ]);
        if ($v->fails()) throw new BasicException(10001, $v->errors()->first());

        $res = app('repo_ranking')->getRichOrCharmRankingList($params);
        return Response::sendData($res);
    }
}